1 Presentación

hola amigos esta es una guia de como manejar R de una forma más didactica y con facilidad, debido a que la misma interración con este entorno a veces puede ser dificultoso, sin embargo, es una super herramienta que nos permitirá realizar diferentes cosas, pongo todo lo que he aprendido durante este tiempo que estoy manejando el programa. Espero que ayude para que puedan iniciar su propio proceso de aprendizaje con este programa

Gráfica realizada por Allison Horst

2 Primeros pasos en el entorno de R

Gráfica realizada por Allison Horst

Al momento de entrar al entorno de Rstudio, hay que saber que esta se divide en 4 partes o recuadros, los cuales son: Script, Environment, Consola y Figuras y Archivos (Ver Figura 1).

2.0.1 Algunos atajos para manejar R

  1. Para limpiar la consola debemos realizar : Ctrl + L
  2. Para correr las lineas de codigo : Ctrl + Intro
  3. Para colocar algún comentario en el Script : solo colocar #

2.0.2 Para poner nombre a un objeto

Para poner poner un nombre a un objeto se puede utilizar los siguientes signos: <- o =. En este caso vamos a utilizar la concatenación c(), la cual nos va a ayudar a guardan conjuntos de datos

ejemplo1 <- c(1,2,3)
ejemplo2 = c(1,2,3,4)

2.0.3 Secuencia de números

Para crear una secuencia, se puede hacer de diferentes formas

y <- 1:5
z <- seq(from=2, to= 10, by=2)

Aqui podremos hacerlo de dos maneras, pero de igual manera van a tener el mismo resultado. Hay que comprender que se pueden realizar varias cosas de maneras distintas, y que los resultados van a ser los mismo, esto depende de nuestro propio estilo

v <- rep(1, 5)
v <- rep(x = 1, times = 5)

2.0.4 Remover o Borrar objetos

Cuando nuestro Environment esta lleno, y no nos permita continuar con nuestro trabajo de manera ordenada, y exitan objetos que ya no vamos a utilizar podemos borrarlos, y esto se hace con la siguiente función rm(). Esta es muy simple de utilizar solo se coloca dentro de los parentesis el objeto que no necesitemos, esto podemos hacerlo de manera individual como en grupo. Por ejemplo, los objetos que creamos como son ejemplo, ejemplo2, v, z vamos a borrarlos. No importa el orden o si lo hacemos en grupo o individualmente

rm(ejemplo)
rm(ejemplo2, v, z)

2.0.5 Creación de matrices

Las matrices que se pueden crear, son de tipo numerico, pero si queremos que esten los tipos de datos, como son los caracteres, estos se podran visualizar en los Data frame que seria las bases de datos en si, que los vamos a extraer de bases de datos como excel o spss o de otra base. Esto se verá más adelante

d <- matrix(data = c(1,2,3,4,5,6,7,8,9), nrow = 3, ncol = 3)
r <- matrix(data = c(1,2,3,4,5,6,7,8,9), nrow = 3, ncol = 3, byrow = TRUE)

2.0.5.1 Manejo de matrices

Nosotros podemos manejar nuestra matrix con sus datos numericos respectivos, de diferentes maneras. Para hacer esto primero vamos a crear diferentes objetos, que contengan datos

objeto1 <- c(126,123,453,654,765,978,869,654,433,186)
objeto2 <- c(23,45,65,87,97,54,64,23,54,91)
objeto3 <- c(1,2,3,4,5,6,7,8,9,10)
objeto4 <- c(345,567,234,645,234,867,656,300,876,343)

Luego de obtener los objetos con datos, vamos a manipularos. Primero vamos a reunirlos de dos en dos, para que podamos ver que podemos combinarlos, sin embargo esto tambien lo podemos hacer con otra función como seria cbind(), la cual va a combinar nuestros datos por columnas, pero si queremos combinarlo por filas podemos utlizar rbind()

A <- matrix(data = c(objeto1,objeto2), nrow = 10, ncol = 2)
B <- matrix(data = c(objeto3,objeto4), nrow = 10, ncol = 2)
C <- matrix(data = c(objeto1,objeto2,objeto3,objeto4), nrow = 10, ncol = 4)
base <- cbind(A,B)

Luego de que tengamos nuestro objeto y que este tenga los 4 objetos, podemos borrar los objetos que no necesitemos, que seria los objetos A, B Y C

rm(A,B,C)

2.0.5.2 Elegir un elemento

Cuando ya tengamos nuestro objeto general, al cual hemos denominado como base, podemos escoger un ejemplo, ya sea una fila o columna, siguiendo esta caracteristica:

objeto [fila,columna]

Como se puede ver, dentro de los parentesis se estan las filas y columnas separadas por la coma, esto lo vamos a entender a continuación

Como se puede ser, aqui se escogió la fila 2, columna 1 de la base y se obtubo 123, lo cual es correcto

base[2,1]
## [1] 123

Aqui vamos a obtener todos los elementos que esten en la fila 1 de la base

base[1,]
## [1] 126  23   1 345

En este caso hemos escogido las 3 primeras filas, pero utilizando la concatenación c(), esta es una forma y la otra en con el uso de los dos puntos :.

base[c(1,2,3), ]
##      [,1] [,2] [,3] [,4]
## [1,]  126   23    1  345
## [2,]  123   45    2  567
## [3,]  453   65    3  234
base[1:3, ]
##      [,1] [,2] [,3] [,4]
## [1,]  126   23    1  345
## [2,]  123   45    2  567
## [3,]  453   65    3  234

Pero tambien podemos escoger cualquiera no importa el orden. Aqui vamos a esocger los 5 últimos

base[6:10, ]
##      [,1] [,2] [,3] [,4]
## [1,]  978   54    6  867
## [2,]  869   64    7  656
## [3,]  654   23    8  300
## [4,]  433   54    9  876
## [5,]  186   91   10  343

Para obtener columnas, se procede de igual manera, pero ahora se pondrá enfasis en la parte que sigue a la coma. Vamos a realizar las combinaciones ya hechas en las filas

base[ ,1]
##  [1] 126 123 453 654 765 978 869 654 433 186
base[ ,c(1,2)]
##       [,1] [,2]
##  [1,]  126   23
##  [2,]  123   45
##  [3,]  453   65
##  [4,]  654   87
##  [5,]  765   97
##  [6,]  978   54
##  [7,]  869   64
##  [8,]  654   23
##  [9,]  433   54
## [10,]  186   91
base[ ,1:2]
##       [,1] [,2]
##  [1,]  126   23
##  [2,]  123   45
##  [3,]  453   65
##  [4,]  654   87
##  [5,]  765   97
##  [6,]  978   54
##  [7,]  869   64
##  [8,]  654   23
##  [9,]  433   54
## [10,]  186   91
base[6:10, 4]
## [1] 867 656 300 876 343
base[c(1,10),c(1,4)]
##      [,1] [,2]
## [1,]  126  345
## [2,]  186  343

Para obtener nuestros resultados sin una fila o columna podemos utilizar el menos - para hacer esto, por ejemplo

base[ ,-c(4)]
##       [,1] [,2] [,3]
##  [1,]  126   23    1
##  [2,]  123   45    2
##  [3,]  453   65    3
##  [4,]  654   87    4
##  [5,]  765   97    5
##  [6,]  978   54    6
##  [7,]  869   64    7
##  [8,]  654   23    8
##  [9,]  433   54    9
## [10,]  186   91   10
base[-c(6:10),]
##      [,1] [,2] [,3] [,4]
## [1,]  126   23    1  345
## [2,]  123   45    2  567
## [3,]  453   65    3  234
## [4,]  654   87    4  645
## [5,]  765   97    5  234

Para poder nombre a nuestras matrix, es muy facil y ya con esto lo convertiriamos a un data frame el cual es lo más normal que vamos a obtener para obtener y analizar datos

base <- data.frame(objeto1, objeto2, objeto3, objeto4)

3 Analisis de Valores perdidos

Para revisar si nuestra Data Frame tiene valores perdidos o espacios donde no se encuentre información, y nuestros datos sean extensos, podemos utilizar las siguientes formas para poder ver si hay estos en nuestros datos

3.1 Revisión de valores perdidos

3.1.1 Primera Forma

Nosotros podemos verificar la cantidad de valores perdidos con la función is.na () o any(is.na()) , esto nos servirá cuando nuestra base de datos es pequeña, ya que con la simple mirada podemos identificar si nuestra base de datos tiene datos perdidos. Ejemplo, vamos a utilizar las funciones mencionadas con nuestra base de datos base y podremos ver en las dos funciones que no sale falso en todas las casillas de nuestra base de datos, porque no hay ningun dato faltante, y en la segunda nos sale un False de manera general porque no hay ningun dato faltante o NA

is.na(base)
##       objeto1 objeto2 objeto3 objeto4
##  [1,]   FALSE   FALSE   FALSE   FALSE
##  [2,]   FALSE   FALSE   FALSE   FALSE
##  [3,]   FALSE   FALSE   FALSE   FALSE
##  [4,]   FALSE   FALSE   FALSE   FALSE
##  [5,]   FALSE   FALSE   FALSE   FALSE
##  [6,]   FALSE   FALSE   FALSE   FALSE
##  [7,]   FALSE   FALSE   FALSE   FALSE
##  [8,]   FALSE   FALSE   FALSE   FALSE
##  [9,]   FALSE   FALSE   FALSE   FALSE
## [10,]   FALSE   FALSE   FALSE   FALSE
any(is.na(base))
## [1] FALSE

Pero ahora veamos un ejemplo cuando hay NA´s la cual vamos a utilizar nuestra base pero la vamos a denomina con otro nombre para ver estos casos de identificación de valores perdidos

base2<-base

Despues de crear nuestra base de datos nueva base2 vamos a quitar valores y reemplazarlos con NA´s, pero esto es para ver el ejemplo

base2[2,3] <- NA
base2[5,] <- NA

Como ahora tenemos NA´s en nuestra base de datos vamos a ver la identificación

is.na(base2)
##       objeto1 objeto2 objeto3 objeto4
##  [1,]   FALSE   FALSE   FALSE   FALSE
##  [2,]   FALSE   FALSE    TRUE   FALSE
##  [3,]   FALSE   FALSE   FALSE   FALSE
##  [4,]   FALSE   FALSE   FALSE   FALSE
##  [5,]    TRUE    TRUE    TRUE    TRUE
##  [6,]   FALSE   FALSE   FALSE   FALSE
##  [7,]   FALSE   FALSE   FALSE   FALSE
##  [8,]   FALSE   FALSE   FALSE   FALSE
##  [9,]   FALSE   FALSE   FALSE   FALSE
## [10,]   FALSE   FALSE   FALSE   FALSE
any(is.na(base2))
## [1] TRUE

Ahora podemos ver que sale TRUE en ambos casos, mostrando que hay valores perdidos

3.1.2 Segunda forma

Otra de identificar los valores perdidos es utilizando complete.cases() con el cual vamos a identicar y escoger los datos ya sea completos y con NA´s de nuestra base de datos. Esta función nos ayuda a identificar en que fila hay valores perdidos

Primero vamos a ver que con complete.cases() el cual muestra que las filas que tienen valores perdidos apareceran con TRUE. Segundo vamos guardarla en indices y luego como ya hemos trabajado vamos a utilizar los corchete, con ello vamos a poder seleccionar las filas que tienen todos sus datos completos, podemos ver que separó dos filas las cuales no nos permitiran hacer un analisis correcto porque contienen NA´s

complete.cases(base2)
##  [1]  TRUE FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE
indices <- complete.cases(base2)
indices.completos <- base2[indices,]
indices.completos
##    objeto1 objeto2 objeto3 objeto4
## 1      126      23       1     345
## 3      453      65       3     234
## 4      654      87       4     645
## 6      978      54       6     867
## 7      869      64       7     656
## 8      654      23       8     300
## 9      433      54       9     876
## 10     186      91      10     343

Para el caso de que querramos analizar las filas que tiene valores perdidos, podemos utilizar el signo (!) la cual nos permitirá invertir los TRUE y FALSE y destará las filas con NA´s. Por este motivo la vamos autilizar y podemos agruparalos y poder analizar los datos faltantes y no buscar fila por fila

indices.incompletos <- !indices
base2[indices.incompletos,]
##   objeto1 objeto2 objeto3 objeto4
## 2     123      45      NA     567
## 5      NA      NA      NA      NA

4 Instalación y Llamado de Paquetes

Al iniciar con el proceso estadistico debemos tener instalados los diferentes paquetes y luego llamarlos. Para instalar los diferentes paquetes que necesitemos, debemos realizar una de las siguientes formas

4.1 Instalación de Paquetes : Primera Opción

La primera forma para poder instalar los paquetes es dirigirnos Figuras y Archivos (Ver Figura 1). Luego darle clic a Packages y Install, despues de eso nos saldra una pequeña pestaña (Ver Figura 2). Ahi podemos escribir el nombre del paquete que necesitemos y luego darle Install. Ya con eso empezará a descargar el paquete en su dispositivo.

Figura 1. Partes de Rstudio

Figura 2. Install Packages

4.2 Instalación de Paquetes : Segunda Opción

La segunda opción es escribir en el Script la siguiente función “install.packages(”“)” en donde colocaremos el nombre del paquete dentro de las comillas y luego correr (Run) la función

install.packages(““)

Y si queremos hacerlo con varios paquetes podemos poner de esta manera

install.packages(c(“tidyverse”, “ggplot2”, “apa”))

4.3 Instalación de Paquetes : Tercera forma

Para esto debemos instalar el paquete pacman el cual ofrece la función p_load(), estas linea de código nos instalará los paquetes que necesitemos y además también los llamará para su uso siendo el código de esta manera.

pacman::p_load(tidyverse, ggplot2, apa)

4.4 Instalación de Paquetes : Cuarta Forma

Esta tercera forma es la que combina la instalación de paquetes y el llamado de estos. Como mencioné en los pasos anteriores se puede instalar los paquetes y luego en el Script colocar library() o require() cualquiera de las dos formas sirve para llamar y empezar a trabajar. Sin embargo, esta opción junta las dos y nos permite hacer nuestros procesos en tan solo 3 clics

Para realizar la instalación y el llamado de los paquetes debemos correr (Run) la función ipak()

ipak <- function(pkg){
    new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
    if (length(new.pkg)) 
        install.packages(new.pkg, dependencies = TRUE)
    sapply(pkg, require, character.only = TRUE)
}

Luego de realizar esto, debemos correr (Run) la linea packages() que contiene los diversos paquetes que querremos utilizar. Aqui podemos agregar todos los paquetes que vamos a utilizar, lo importante es que debemos colocarlos dentro de las comillas y tener cuidado de no poner las comas

packages <- c("ggplot2", "plyr", "reshape2", "RColorBrewer", "scales", "grid")

Y para finalizar debemos correr (Run) la linea ipak(), con esto ya se realizará el proceso de instalación y de llamado de los paquetes

ipak(packages)
## Loading required package: ggplot2
## Loading required package: plyr
## Loading required package: reshape2
## Loading required package: RColorBrewer
## Loading required package: scales
## Loading required package: grid
##      ggplot2         plyr     reshape2 RColorBrewer       scales         grid 
##         TRUE         TRUE         TRUE         TRUE         TRUE         TRUE

5 Llamado de las Bases de datos

Gráfica realizada por Allison Horst

Al momento de tener ya los paquetes que vamos a utilizar, debemos tener nuestra base de datos, para poder tenerla en nuestro sistema debemos realizar alguna de las siguientes opciones. Pero antes de realizar este proceso debemos tener instalado los siguientes paquetes

package(haven), package(foreign), package(openxlsx), package(readxl)

Los cuales nos ayudarán a poder leer los archivos que contienen nuestros datos, estos pueden ser excel, csv etc.

5.1 Llamado de Base de Datos : Primera Opción

Cuando tengamos nuestras bases de datos podemos buscarlas en nuestra dispositivo a traves de la función

file.choose()

Despues de escribir file.chose() en el script, solo debemos correr (Run)la función sin agregarle nada en el parentesis. Luego nos aparecerá una ventana para poder buscar nuestra base de datos y darle solo Abrir.

A continuación en la Consola se mostrará la dirección de donde esta nuestra base de datos. Ejemplo

“D:\SCRIPTS HECHOS EN r\dfcorFSFI_1.sav”

“D:\SCRIPTS HECHOS EN r\ded.csv”

La primera dirección .sav pertenece a un archivo de spss y el segundo .csv a un archivo excel.

Luego de obtener esas direcciones debemos leerlas de la siguiente manera.

datos1<-read.csv(“D:\SCRIPTS HECHOS EN r\ded.csv”)

datos2<-read_sav(“D:\SCRIPTS HECHOS EN r\dfcorFSFI_1.sav”)

Como podemos ver, el lugar donde va estar presente la base de datos se va a llamar datos1 o datos2. Podemos colocarle cualquier nombre, lo importate es colocar <- y luego escribir read. nos aparecerán diferentes opciones, pero como nosotros tenemos bases de datos de spss y excel colocarmos .csv y .sav.

Con esto ya se guardarán las bases de datos que querramos

5.2 Llamado de Base de Datos : Segunda Opción

Si nuestra base de datos se encuentran en una base libre en la internet, como por ejemplo la Plataforma Nacional de Datos Abiertos (https://www.datosabiertos.gob.pe/) que tiene el Perú. Solo debemos dirigirnos a cualquiera de las bases y copiar el link de dirección

Figura 3 : Plataforma Nacional de Datos Abiertos

Luego vamos a colocarla entre los parentesis de vroom(““) el cual nos va a permitir leer bases de datos de la internet

datos3 <- vroom(“https://devops11.osce.gob.pe/confluence/x/cpfdAQ”)

6 Estadistica Descriptiva

Despues de tener nuestra base de datos en el Environment podemos hacer el analisis descriptivo de los datos que tengamos, contemplando la misma filosofia de presentación de los datos (Ver Figura 4).

Figura 4 : Filosofia de los Datos

En esta ocasión vamos a trabajar con la base de datos iris, la cual nos muestra caracteristicas de diferentes plantas. Vamos a llamar la base de datos con la función

data(“iris”)

Está al momento de correr (Run) debe aparecer en el Environment y solo debemos darle clic para que aparezca como un Data Frame.

6.1 Exploración de la Base de Datos

Al momento de tener nuestra base de datos, podemos hacer nuestra exploración de está y verificar lo que tenemos en ella. Para esto debemos instalar y llamar los paquetes dplyr , tidyverse y pastecs

library(dplyr)

library(tidyverse)

library(pastecs)

Con estos paquetes ya llamados podemos hacer la exploración respectiva de nuestos datos

6.1.1 class()

Esta opción nos permite ver que clase es nuestra Base de Datos, como ya indique iris es un Data Frame, sin embargo, si nuestra base de datos aparece como un integer, tabla, vector, matrix etc. Podemos verificar solo poniendo:

class(iris)
## [1] "data.frame"

Como se observa al correr la linea, nos va a salir que es un “data.frame”. Sin embargo, si nuestros datos los creamos nosotros o aparecen en Values podemos transformarlo a un Data Frame para poder hacer nuestros analisis, que en la mayoria de casos de hacen con este formato

La transformación de nuestra base de datos se realiza de la siguiente manera. Vamos crear un conjunto que contenga números del 1 al 50 y lo guardamos en ejemplo

ejemplo<-c(1:50)

Luego de correr ejemplo, vamos poder el siguiente comando. El cual nos permitirá cambiar nuestro conjunto de datos a un data frame a traves de la función as.data.frame

ejemplo<-as.data.frame(ejemplo)

6.1.2 nrow(), ncol() y dim()

Estas opciones nos permitirán ver cuantas filas (nrow) y columnas (ncol) tiene nuestros datos.

nrow(iris)
## [1] 150
ncol(iris)
## [1] 5

La función dim() nos permitirá ver las dos dimenciones tanto columnas como filas

dim(iris)
## [1] 150   5

6.1.3 colnames(), objects() y ls()

Estas opciónes nos permitirán ver los nombres de nuestras columnas (Variables)

colnames(iris)
## [1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"
objects(iris)
## [1] "Petal.Length" "Petal.Width"  "Sepal.Length" "Sepal.Width"  "Species"
ls(iris)
## [1] "Petal.Length" "Petal.Width"  "Sepal.Length" "Sepal.Width"  "Species"

6.1.4 head() y tail()

Estas funciones nos mostrarán las primera como las ultimas filas de nuestra base de datos

head() nos mostrará las solo las primeras 5 filas de nuesta base de datos, sin embargo, podemos poner la cantidad de filas que querremos que salga, con solo agregar n= o solo colocando el número

head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa
head(iris, n=10)
##    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1           5.1         3.5          1.4         0.2  setosa
## 2           4.9         3.0          1.4         0.2  setosa
## 3           4.7         3.2          1.3         0.2  setosa
## 4           4.6         3.1          1.5         0.2  setosa
## 5           5.0         3.6          1.4         0.2  setosa
## 6           5.4         3.9          1.7         0.4  setosa
## 7           4.6         3.4          1.4         0.3  setosa
## 8           5.0         3.4          1.5         0.2  setosa
## 9           4.4         2.9          1.4         0.2  setosa
## 10          4.9         3.1          1.5         0.1  setosa

tail() nos mostrará las solo las ultimas 5 filas de nuesta base de datos, sin embargo, podemos poner la cantidad de filas que querremos que salga, con solo agregar n= o solo colocando el número

tail(iris)
##     Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
## 145          6.7         3.3          5.7         2.5 virginica
## 146          6.7         3.0          5.2         2.3 virginica
## 147          6.3         2.5          5.0         1.9 virginica
## 148          6.5         3.0          5.2         2.0 virginica
## 149          6.2         3.4          5.4         2.3 virginica
## 150          5.9         3.0          5.1         1.8 virginica
tail(iris, n=10)
##     Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
## 141          6.7         3.1          5.6         2.4 virginica
## 142          6.9         3.1          5.1         2.3 virginica
## 143          5.8         2.7          5.1         1.9 virginica
## 144          6.8         3.2          5.9         2.3 virginica
## 145          6.7         3.3          5.7         2.5 virginica
## 146          6.7         3.0          5.2         2.3 virginica
## 147          6.3         2.5          5.0         1.9 virginica
## 148          6.5         3.0          5.2         2.0 virginica
## 149          6.2         3.4          5.4         2.3 virginica
## 150          5.9         3.0          5.1         1.8 virginica

6.1.5 str(), glimpse() y sapply()

Estas funciones nos van a permitir ver la estructura de nuestra base de datos. str() como glimpse() cumplen la misma función

str(iris)
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
glimpse(iris)

En el caso de sapply() junto con class nos mostrará que tipo de variable son nuestros datos

sapply(iris, class)
## Sepal.Length  Sepal.Width Petal.Length  Petal.Width      Species 
##    "numeric"    "numeric"    "numeric"    "numeric"     "factor"

El tipo de variable estará determinada por las siguientes caracteristicas (Ver Figura 5)

Figura 5 : Tipos de Variables (Diseño realizado por RLadies Cuernavaca)

6.2 Medidas Numericas Descriptivas

Nota: Se van a utilizar el simbolo de dolar “$” para determinar la variables que vamos a escoger para su análisis

6.2.1 mean(), median()

La media aritmentica (mean), mejor conocida como media, es la más común de las tendencias centrales. Sin embargo, se debe tomar en cuenta que si nuestros datos tienen valores extremos, no va a describir correctamente

La mediana (median), es el valor que divide en dos partes iguales un conjunto de datos ya ordenados. Esta a comparación de la media, no se ve afectada por los valores extremos

mean(iris$Sepal.Length)
## [1] 5.843333
median(iris$Sepal.Length)
## [1] 5.8

6.2.2 range()

El rango (range) nos permite ver cual es el valor máximo y minimo de nuestra variable

range(iris$Sepal.Length)
## [1] 4.3 7.9

Se pueden tambien ver esto a traves de las funciones min() y max()

min(iris$Sepal.Length)
## [1] 4.3
max(iris$Sepal.Length)
## [1] 7.9

6.2.3 quantile()

Los cuantiles (quantile) determinan los valores que estan debajo de un procentaje

quantile(iris$Sepal.Length)
##   0%  25%  50%  75% 100% 
##  4.3  5.1  5.8  6.4  7.9

6.2.4 sd()

La desviación estandar o desviación tipica mide cuanto es la disperción de una observación respecto a la media. Es decir que tanto los valores estan por debajo o encima de la media. El cuadrado de la desviación estandar es la varianza

sd(iris$Sepal.Length)
## [1] 0.8280661
var(iris$Sepal.Length)
## [1] 0.6856935

6.2.5 sapply() y tapply()

La función sapply() nos permite aplicar las estadisticas anteriores a la vez, siendo claro esas variables cuantitativas

sapply(iris[1:4], mean)
## Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
##     5.843333     3.057333     3.758000     1.199333
sapply(iris[1:4], sd)
## Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
##    0.8280661    0.4358663    1.7652982    0.7622377

La función tapply() nos permite aplicar las estadisticas vistas y además agregarle una variable cualitativa o nominal

tapply(iris$Sepal.Length, iris$Species, mean)
##     setosa versicolor  virginica 
##      5.006      5.936      6.588
tapply(iris$Sepal.Length, iris$Species, sd)
##     setosa versicolor  virginica 
##  0.3524897  0.5161711  0.6358796

6.2.6 summary() y stat.desc()

La funciónes summary() y stat.desc() nos permite hacer un resumen de las medidas que ya hemos visto

summary(iris)
##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
##        Species  
##  setosa    :50  
##  versicolor:50  
##  virginica :50  
##                 
##                 
## 
stat.desc(iris)

Un paquete interesante es el packages(summarytools) el cual nos permitirá visualizar diferentes aspectos de nuestras variables, agregando figuras y descripciones más comprensibles. Para ver su gráfica debemos colocarla de la siguiente manera, en nuestro caso nuestra base de datos es iris por eso la colocarmos entre los parentesis

view( dfSummary ( iris ) )

view(dfSummary(iris))

7 Manipulación de los datos usando “Tidyverse”

Gráfica realizada por Allison Horst

El tidyverse es un paquete que nos ayuda a manipular nuestra base de datos como nosotros querremos, siendo muy util para separar, renombrar, filtrar, crear nuevas variables, modificar la misma estructura de la base de datos etc.

Este pequete es muy util para determinar que datos vamos a utilizar para su analisis. Lo que debemos hacer para poder hacer esa manipulación debemos tener instalados los siguientes paquetes

library(tidyverse)

library(dplyr)

7.0.1 Estructura basica

Podemos usar las funciones que querramos en todas las variables que querramos, lo importante es seguir esta estructura

función(Base de datos, VariableX, VariableY….)

7.0.2 Función Pipe %>%

La función pipe nos va a ayudar a concatenar diferentes funciones que nosotros vamos a realizar siendo esta determinada solo por la división de estas funciones solo con agregarle %>%, la cual se hace escribiendo de forma manual o con control + shift + M

Esta función la vamos a utilizar en las funciones siguientes para que entendamos mejor su uso

7.0.3 select()

Esta función nos ayuda a selecionar las diferentes variables que nosotros querramos tener a nuestra diposición

Ejemplo 1: vamos a selecionar solo una variable de nuestra base de datos iris, en este caso nos saldrá la variable Sepal.Length con todos sus datos

select(iris,Sepal.Length)

Ejemplo 2: ahora vamos a seleccionar 3 variables de la base de datos iris

select(iris,Sepal.Length,Sepal.Width,Petal.Length)

Sin embargo, si nuestras variables estan de manera consecutiva y queremos separarlas de las otras que no necesitemos podemos utilizar los dos puntos”:“, como en el siguiente ejemplo, el cual nos seleccionará en bloque las variables de Sepal.Length hasta Petal.Width

select(iris,Sepal.Length:Petal.Width)

Otro uso del cual nos puede servir es solo retirar la variable no deseada con el simbolo menos “-”, el cual nos separará la variable que no querramos utilizar de nuestra base de datos. En este caso vamos a separar de nuestra base de datos la variable Species

select(iris, -Species)

Podemos agregarle otras variables que no querramos tener

select(iris, -Species, -Petal.Width, -Petal.Length)

7.0.4 Uso de Pipe %>%

El pipe nos permitirá cambiar la estructura que se menciono en la estructura basica, variando en que nuestra base de datos estará fuera y la función pipe separará nuestras funciones

Ejemplo 1 : como se puede ver nuestra base de datos iris esta primerá luego sigue %>% luego la función, en este caso select() que esta seleccionando la variable Species

iris %>% select(Species)

Podemos utilizar esta estructura con los ejemplos que hemos hecho

iris %>% select(Sepal.Width,Petal.Length,Species)
iris %>% select(-Sepal.Width,-Petal.Length,-Species)

7.0.5 filter()

Para realizar un analisis más profundo de las variables por una o más caracteristicas debemos usar filter() esta función retiene las observaciones o condiciones que hagamos a la variable filtrada. Y esta utiliza los siguientes operadores lógicos

== si x es igual que y
> Si x es mayor que y
< si x es menor que y
>= Si x es mayor o igual que y
<= si x es menor o igual que y
!= distinto de
is.na si x es NA
!is.na si x no es NA
“&” Si significa y

7.0.6 mutate()

If you are having a hard time with your Capitulo 1,Capitulo 2, Capitulo 3, we have some tutors who can help you.

⚠️ Warning: Be very careful here!

Warning: Be very careful here!

📌 Tip: this is how.
⛔ Tip: this is how.
❗ Tip: this is how.
🛑 Tip: this is how .
Tip: this is how Welcome | Geocomputation with R is for people who want to analyze.
Tip: this is how Welcome | Geocomputation with R is for people who want to analyze.
Tip: this is how Para conseguir que una imagen tenga el texto rodeando a la propia imagen This code loads the Semrush logo, aligns it vertically to the middle of the page, and adds a 50-pixel width margin to the left and right side of the image. Now, no text will appear within 50 pixels on either side of the image. .
Tip: this is how Para conseguir que una imagen tenga el texto rodeando a la propia imagen.
Tip: this is how Para conseguir que una imagen tenga el texto rodeando a la propia imagen.
Tip: this is how Para conseguir que una imagen tenga el texto rodeando a la propia imagen.
IMPORTANTE

hola amigos esta es una guia la cual

Primera parte

7.0.7 summarise() y group_by()

7.0.8 count()

7.0.9 rename()